home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Programming / Amos / AMOSList-0198 / AMOSLIST / 000014_amos-request@svcs1.digex.net_Mon Jan 5 17:31:27 1998.msg < prev    next >
Text File  |  1998-06-24  |  5KB  |  122 lines

  1. >From amos-request@svcs1.digex.net  Mon Jan  5 17:31:27 1998
  2. Received: from svcs1.digex.net (svcs1.digex.net [204.91.197.224])
  3.     by pony-1.mail.digex.net (8.8.8/8.8.8) with ESMTP id RAA11030
  4.     for <mcox@access.digex.net>; Mon, 5 Jan 1998 17:31:27 -0500 (EST)
  5. Received: (from daemon@localhost)
  6.     by svcs1.digex.net (8.8.5/8.8.5) id PAA17794
  7.     for amos-out; Mon, 5 Jan 1998 15:38:05 -0500 (EST)
  8. Received: from pony-2.mail.digex.net (pony-2.mail.digex.net [204.91.241.6])
  9.     by svcs1.digex.net (8.8.5/8.8.5) with ESMTP id PAA17791
  10.     for <amos-list@svcs1.digex.net>; Mon, 5 Jan 1998 15:38:04 -0500 (EST)
  11. Received: from cgi.inet.tele.dk (cgi.inet.tele.dk [194.182.149.95])
  12.     by pony-2.mail.digex.net (8.8.8/8.8.8) with SMTP id PAA23357
  13.     for <amos-list@access.digex.net>; Mon, 5 Jan 1998 15:32:21 -0500 (EST)
  14. Received: (qmail 20476 invoked from network); 5 Jan 1998 20:32:05 -0000
  15. Received: from post8.tele.dk (194.239.134.172)
  16.   by cgi.inet.tele.dk with SMTP; 5 Jan 1998 20:32:05 -0000
  17. Received: from post8.tele.dk ([194.239.180.38]) by post8.tele.dk
  18.           (Netscape Mail Server v2.02) with SMTP id AAA37816;
  19.           Mon, 5 Jan 1998 21:32:04 +0100
  20. From: Jens Vang Petersen <top_cat@post8.tele.dk>
  21. To: Timo Engman <timoeng@hem1.passagen.se>
  22. CC: amos-list@access.digex.net
  23. Date: Mon, 05 Jan 1998 21:24:05 +0100
  24. Message-ID: <yam7309.251.1747895528@post8.tele.dk>
  25. In-Reply-To: <199801022137.WAA20557@Grynet.passagen.se>
  26. X-Mailer: YAM 1.3.4 [020] - Amiga Mailer by Marcel Beck
  27. Subject: Re: New Extension
  28. MIME-Version: 1.0
  29. Content-Type: text/plain
  30. Status: O
  31. X-Status: 
  32.  
  33. On 02-Jan-98, Timo Engman smashed the keyboard with:
  34. >Hello.
  35.  
  36. >I'm Timo Engman, and programming a new extension - which is called 
  37. >"Second-Hand Extension", the current version is 0.01d6 but please, all 
  38. >AMOSPro users - mail me and let me hear if I may add new commands to this 
  39. >extension that the users want...For now, the extension have five commands 
  40. >:-) pretty lame. But I learning how to program the graphics...
  41.  
  42. >The extension uses slot 22 but mail me and I may change it to whatever.
  43. >Check the aminet/dev/amos/ for this extension...later...
  44. >Maybe I mail the .Lib file soon, to the Mailing List.
  45.  
  46. I've added your extension to the extensionlist at my site, if you'd like to
  47. see what slots are used and for what you can always drop by :))
  48.  
  49. ---
  50.  
  51. >A Problem 1: How to return a string from a routine (and change it's 
  52. >length) from it, the string is in the extension
  53.  
  54. >dc.w TheLength
  55. >dc.b "TheString",0
  56. >even
  57.  
  58. You need to ask for memory and then build the right structure, when looking
  59. at the string the first 2 bytes (word) holds the length of the string, then
  60. at the 3rd byte the string itselve starts. You can see this by trying to
  61. define a string in AMOS and then do a Deek(Varptr(W$)-2), that'll return
  62. the 'len'..
  63.  
  64. Here's a way to do it:
  65.  First you ask for the stringspace (needed length in both d3 & d0)
  66.  
  67.                                         ;Ask for string space...
  68.         and.w   #$FFFE,d3               * Only EVEN!
  69.         addq.w  #2,d3
  70.         Rjsr    L_Demande
  71.         lea     2(a1,d3.w),a1
  72.         move.l  a1,HiChaine(a5)
  73.         move.l  a0,STa_d(pc)            * Store adress     
  74.         move.w  d0,(a0)+                * Store length
  75.  
  76.  Now the structure-adress of the new string is placed in a locale 
  77.  data-area to be returned to the caller, and the room for the string
  78.  itselve is pointed by a0, be carefull not to swap these as they differs
  79.  by 2 bytes !!!!..
  80.  Then create the string with the first character starting in the adress
  81.  pointed by a0, and end your procedure with:
  82.  
  83.         move.l  STa_d(pc),d3            ;Stringadress
  84.         moveq.l #2,d2                   ;Returning a string
  85.         rts
  86.  
  87.  (Remeber to clean up the stack BEFORE you put this, I'd forgotten once,
  88.  and the same bug can be found in the IO_devices 2.0)
  89.  
  90.  That should return the string to the caller..
  91.  
  92. ---
  93.  
  94. >Problem 2: How to get a pointer from the extension in assembler, 
  95. >typically i want the pointer for a variable, same as Varptr(variable) and 
  96. >pointer for an array, same as Varptr(var(array))
  97.  
  98. I havn't got a clue, I've been looking for a solve for the same problem
  99. some time. I think it's hidden somewhere in the include files that
  100. comes with AMOSPro.. Unfortunaly they're not very well documented..
  101.  
  102. ---
  103.  
  104. >Hope that all peoples understanding my bad english (I'm swedish)...And 
  105. >those people who don't like the assembler language.
  106.  
  107. And I'm danish, so that isn't much better :)
  108.  
  109. -- 
  110. Happy greetings, Yours..
  111. __________________________________________________________________________
  112.  /_  __/ __  / __  /\  ___\  __ \__  _\           aka. JENS VANG PETERSEN
  113.   / / / /_/ / ____/  \ \___\  __ \ \ \  Nyvej 8, DK-4450 Jyderup, Denmark
  114.  /_/ /_____/_/        \_____\_\ \_\ \_\             top_cat@post8.tele.dk
  115. --------------------------------------------------------------------------
  116.                      http://home8.inet.tele.dk/top_cat/
  117.   -*-  Home of 'The Ultimate Extension list' for AMOS TC & AMOS PRO  -*-
  118.                 -*-  AMOS Ring - AMIGA Ring - AQUA Ring  -*-
  119. --------------------------------------------------------------------------
  120.  Foolproof operation = All parameters are hard coded.
  121. --------------------------------------------------------------------------
  122.